var $, tab, dataStr, layer;
layui.config({
    base: "/Areas/Admin/js/"
}).extend({
    "bodyTab": "home.bodyTab"
});
layui.use(['bodyTab', 'form', 'element', 'layer', 'jquery'], function () {
    var form = layui.form, element = layui.element;
    $ = layui.$;
    layer = parent.layer === undefined ? layui.layer : top.layer;
    tab = layui.bodyTab({
        openTabNum: "50",  //最大可打开窗口数量
        url: "/Admin/Home/LoadSubMenus" //获取菜单json地址
    });

    var adminHomeIndexLogic = {
        //初始化
        init: function () {
          
            self = this;
            ///全局参数
            this.Parameters = {
                loadSubMenusUrl: "/Admin/Home/LoadSubMenus",
                //请求时间标识
                requestTicket: 0
            };
            //页面初始化
            this.initPage();
            //时间初始化
            this.bindEvent();
        },
        //初始化列表
        initPage: function () {

            //刷新后还原打开的窗口
            if (cacheStr == "true") {
                if (window.sessionStorage.getItem("menu") != null) {
                    menu = JSON.parse(window.sessionStorage.getItem("menu"));
                    curmenu = window.sessionStorage.getItem("curmenu");
                    var openTitle = '';
                    for (var i = 0; i < menu.length; i++) {
                        openTitle = '';
                        if (menu[i].icon) {
                            if (menu[i].icon.split("-")[0] == 'icon') {
                                openTitle += '<i class="seraph ' + menu[i].icon + '"></i>';
                            } else {
                                openTitle += '<i class="layui-icon">' + menu[i].icon + '</i>';
                            }
                        }
                        openTitle += '<cite>' + menu[i].title + '</cite>';
                        openTitle += '<i class="layui-icon layui-unselect layui-tab-close" data-id="' + menu[i].layId + '">&#x1006;</i>';
                        element.tabAdd("bodyTab", {
                            title: openTitle,
                            content: "<iframe src='" + menu[i].href + "' data-id='" + menu[i].layId + "'></frame>",
                            id: menu[i].layId
                        })
                        //定位到刷新前的窗口
                        if (curmenu != "undefined") {
                            if (curmenu == '' || curmenu == "null") {  //定位到后台首页
                                element.tabChange("bodyTab", '');
                            } else if (JSON.parse(curmenu).title == menu[i].title) {  //定位到刷新前的页面
                                element.tabChange("bodyTab", menu[i].layId);
                            }
                        } else {
                            element.tabChange("bodyTab", menu[menu.length - 1].layId);
                        }
                    }
                    //渲染顶部窗口
                    tab.tabMove();
                }
            } else {
                window.sessionStorage.removeItem("menu");
                window.sessionStorage.removeItem("curmenu");
            }
        },
        //绑定事件
        bindEvent: function () {

            //页面加载时判断左侧菜单是否显示
            //通过顶部菜单获取左侧菜单
            $(".topLevelMenus li,.mobileTopLevelMenus dd").click(function () {
                if ($(this).parents(".mobileTopLevelMenus").length != "0") {
                    $(".topLevelMenus li").eq($(this).index()).addClass("layui-this").siblings().removeClass("layui-this");
                } else {
                    $(".mobileTopLevelMenus dd").eq($(this).index()).addClass("layui-this").siblings().removeClass("layui-this");
                }
                $(".layui-layout-admin").removeClass("showMenu");
                $("body").addClass("site-mobile");
                self.logicFunc.getData($(this).data("menu"));
                //渲染顶部窗口
                tab.tabMove();
            });


            //隐藏左侧导航
            $(".hideMenu").click(function () {
                if ($(".topLevelMenus li.layui-this a").data("url")) {
                    layer.msg("此栏目状态下左侧菜单不可展开");  //主要为了避免左侧显示的内容与顶部菜单不匹配
                    return false;
                }
                $(".layui-layout-admin").toggleClass("showMenu");
                //渲染顶部窗口
                tab.tabMove();
            });

            //默认打开第一个菜单
            $(".topLevelMenus>li.layui-nav-item:first").trigger("click").addClass("layui-this");

            //手机设备的简单适配
            $('.site-tree-mobile').on('click', function () {
                $('body').addClass('site-mobile');
            });

            $('.site-mobile-shade').on('click', function () {
                $('body').removeClass('site-mobile');
            });

            //添加新窗口
            $("body").on("click", ".layui-nav .layui-nav-item a:not('.mobileTopLevelMenus .layui-nav-item a')", function () {
                //如果不存在子级
                if ($(this).siblings().length == 0) {
                    self.logicFunc.addTab($(this));
                    $('body').removeClass('site-mobile');  //移动端点击菜单关闭菜单层
                }
                $(this).parent("li").siblings().removeClass("layui-nav-itemed");
            });

            //清除缓存
            $(".clearCache").click(function () {
                var userInfo = window.sessionStorage.getItem('userInfo');
                window.sessionStorage.clear();
                window.localStorage.clear();
                var index = layer.msg('清除缓存中，请稍候', { icon: 16, time: false, shade: 0.8 });
                setTimeout(function () {
                    window.sessionStorage.setItem('userInfo', userInfo);
                    layer.close(index);
                    layer.msg("缓存清除成功！");
                }, 1000);
            });
        },
        //事件
        logicFunc: {
            //通过顶部菜单获取左侧二三级菜单
            getData: function (ParentCode) {

                var layerLoadIndex = layer.load();

                var time = new Date().getTime();

                self.Parameters.requestTicket = time;

                layer.close(layerLoadIndex);

                var json = {
                    parameters: ParentCode
                };
                GrdLayUI.ajaxPost({
                    url: self.Parameters.loadSubMenusUrl,
                    data: json,
                    modal: false,
                    success: function (result) {
                        if (result.Code == 1000) {

                            /* 非本次请求忽略 */
                            if (self.Parameters.requestTicket != time) {
                                return;
                            }
                        } else {
                            GrdLayUI.msg(result.Msg, "警告");
                            return;
                        }
                        //菜单信息
                        dataStr = result.Data;

                        //重新渲染左侧菜单
                        tab.render();

                    }
                });
            },
            //打开新窗口
            addTab: function (_this) {
                tab.tabAdd(_this);
            }
        },
        //工具
        tools: {

        }
    };
    adminHomeIndexLogic.init();
})


